package persistencia.busqueda;

import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import negocio.busqueda.LugarSeguimiento;
import negocio.busqueda.TipoSeguimiento;
import persistencia.DACBase;

public class DACTipoSeguimiento extends DACBase {

	private List<TipoSeguimiento> tiposSeguimiento;
	private TipoSeguimiento tipo;
	private CallableStatement clstm;
	private ResultSet rs;
	
	public DACTipoSeguimiento(DACBase dacBase) {
		super(dacBase);		
	}
	
	public List<TipoSeguimiento> consultarTiposDeSeguimiento() {
		try{
			clstm = getConn().prepareCall("{call tiposeguimientoConsultarTodos()}");			
			clstm.execute();
			rs = clstm.getResultSet();	
			
			tiposSeguimiento =  new ArrayList<TipoSeguimiento>();			
			while (rs.next()) {
				tipo = new TipoSeguimiento();
				tipo.setIdTipoSeguimiento(rs.getInt("idtiposeguimiento"));
				tipo.setNombre(rs.getString("nombre"));
				tipo.setDescripcion(rs.getString("descripcion"));

				tiposSeguimiento.add(tipo);
            }			           

			rs.close();
			rs = null;
			clstm.close();
            clstm = null;
            
           
            
		}    
		catch (SQLException ex) {
		    // handle any errors
		    System.out.println("SQLException: " + ex.getMessage());
		    System.out.println("SQLState: " + ex.getSQLState());
		    System.out.println("VendorError: " + ex.getErrorCode());
		    System.out.println("Error en metodo consultarTiposDeSeguimiento_DacTipoDeSeguimiento");
			}		
		
	    return tiposSeguimiento;		
	}
	
	public TipoSeguimiento consultarTipoSeguimiento(int id){
		
		try{					
			clstm = getConn().prepareCall("{call tiposeguimientoConsultar(?)}");
			clstm.setInt("id", id);
			clstm.execute();
			rs = clstm.getResultSet();			
			if (rs.next()) {
				tipo = new TipoSeguimiento();
				tipo.setIdTipoSeguimiento(rs.getInt("idtiposeguimiento"));
				tipo.setNombre(rs.getString("nombre"));
				tipo.setDescripcion(rs.getString("descripcion"));
            }			           

			rs.close();
			rs = null;
			clstm.close();
            clstm = null;           
            
		}    
		catch (SQLException ex) {
		    // handle any errors
		    System.out.println("SQLException: " + ex.getMessage());
		    System.out.println("SQLState: " + ex.getSQLState());
		    System.out.println("VendorError: " + ex.getErrorCode());
		    System.out.println("Error en metodo consultarTipoSeguimiento()_DacTipoSeguimiento");
			}		
		
	    return tipo;		
	}

}
